Claude Code 进阶使用经验分享
从“会用”到“用得顺”,靠的是工作流
很多人刚开始用 Claude Code 时,会觉得它很强。
但再往后走,真正拉开差距的不是“知道它能做什么”,而是“你有没有一套稳定工作流”。
新手最常见的状态是:
- 想到什么就问什么
- 一上来就让 Claude 直接改
- 改完也不验证
- 每一轮都像重新开始
而进阶用户更像是在“带着 Claude 按流程推进任务”。
先记住一个总原则
Claude Code 最适合扮演的角色,不是“替你一把梭写完所有东西”,而是:
- 帮你快速理解项目
- 帮你拆方案
- 帮你执行重复性或高密度工作
- 帮你验证和复查
也就是说,最顺的用法通常不是:
直接把一个很大的目标扔给 Claude,然后等奇迹出现
而是:
让 Claude 先理解,再规划,再执行,再验证
一张图看最推荐的进阶工作流
#mermaid-ge6rkyn{font-family:system-ui,sans-serif;font-size:14px;fill:#0F2829;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-ge6rkyn .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-ge6rkyn .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-ge6rkyn .error-icon{fill:#FFFBF2;}#mermaid-ge6rkyn .error-text{fill:#00040d;stroke:#00040d;}#mermaid-ge6rkyn .edge-thickness-normal{stroke-width:1px;}#mermaid-ge6rkyn .edge-thickness-thick{stroke-width:3.5px;}#mermaid-ge6rkyn .edge-pattern-solid{stroke-dasharray:0;}#mermaid-ge6rkyn .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-ge6rkyn .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-ge6rkyn .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-ge6rkyn .marker{fill:#F97316;stroke:#F97316;}#mermaid-ge6rkyn .marker.cross{stroke:#F97316;}#mermaid-ge6rkyn svg{font-family:system-ui,sans-serif;font-size:14px;}#mermaid-ge6rkyn p{margin:0;}#mermaid-ge6rkyn .label{font-family:system-ui,sans-serif;color:#0F2829;}#mermaid-ge6rkyn .cluster-label text{fill:#00040d;}#mermaid-ge6rkyn .cluster-label span{color:#00040d;}#mermaid-ge6rkyn .cluster-label span p{background-color:transparent;}#mermaid-ge6rkyn .label text,#mermaid-ge6rkyn span{fill:#0F2829;color:#0F2829;}#mermaid-ge6rkyn .node rect,#mermaid-ge6rkyn .node circle,#mermaid-ge6rkyn .node ellipse,#mermaid-ge6rkyn .node polygon,#mermaid-ge6rkyn .node path{fill:#FFF7E8;stroke:#F97316;stroke-width:1px;}#mermaid-ge6rkyn .rough-node .label text,#mermaid-ge6rkyn .node .label text,#mermaid-ge6rkyn .image-shape .label,#mermaid-ge6rkyn .icon-shape .label{text-anchor:middle;}#mermaid-ge6rkyn .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-ge6rkyn .rough-node .label,#mermaid-ge6rkyn .node .label,#mermaid-ge6rkyn .image-shape .label,#mermaid-ge6rkyn .icon-shape .label{text-align:center;}#mermaid-ge6rkyn .node.clickable{cursor:pointer;}#mermaid-ge6rkyn .root .anchor path{fill:#F97316!important;stroke-width:0;stroke:#F97316;}#mermaid-ge6rkyn .arrowheadPath{fill:#0b0b0b;}#mermaid-ge6rkyn .edgePath .path{stroke:#F97316;stroke-width:2.0px;}#mermaid-ge6rkyn .flowchart-link{stroke:#F97316;fill:none;}#mermaid-ge6rkyn .edgeLabel{background-color:transparent;text-align:center;}#mermaid-ge6rkyn .edgeLabel p{background-color:transparent;}#mermaid-ge6rkyn .edgeLabel rect{opacity:0.5;background-color:transparent;fill:transparent;}#mermaid-ge6rkyn .labelBkg { fill: none; }#mermaid-ge6rkyn .cluster rect{fill:#FFFBF2;stroke:hsl(41.5384615385, 60%, 87.4509803922%);stroke-width:1px;}#mermaid-ge6rkyn .cluster text{fill:#00040d;}#mermaid-ge6rkyn .cluster span{color:#00040d;}#mermaid-ge6rkyn div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:system-ui,sans-serif;font-size:12px;background:#FFFBF2;border:1px solid hsl(41.5384615385, 60%, 87.4509803922%);border-radius:2px;pointer-events:none;z-index:100;}#mermaid-ge6rkyn .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#0F2829;}#mermaid-ge6rkyn rect.text{fill:none;stroke-width:0;}#mermaid-ge6rkyn .icon-shape,#mermaid-ge6rkyn .image-shape{background-color:transparent;text-align:center;}#mermaid-ge6rkyn .icon-shape p,#mermaid-ge6rkyn .image-shape p{background-color:transparent;padding:2px;}#mermaid-ge6rkyn .icon-shape .label rect,#mermaid-ge6rkyn .image-shape .label rect{opacity:0.5;background-color:transparent;fill:transparent;}#mermaid-ge6rkyn .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-ge6rkyn .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-ge6rkyn :root
先让 Claude 理解项目
输出方案,不立刻改
确认文件范围和风险
开始修改
运行 build / test 验证
/review 再审一遍
/diff 看改动
/commit 提交
这个流程为什么好用
因为它同时解决了几类常见问题:
- 一上来就乱改
- 改了但没验证
- 改动太散、自己都说不清
- 做完没有代码审查视角
- 一个会话里混着分析、实现、审查、提交,最后谁也分不清
也就是说,这不是“更麻烦”,而是“更稳定”。
一个很好用的任务模板
你可以直接这样给 Claude Code 下任务:
先分析这个需求会涉及哪些文件,给出实现方案和风险点,先不要改代码。
确认后再开始修改。修改完成后运行 build 和相关测试。
最后从 code review 角度再检查一遍潜在问题。这类提示词的好处是,把任务拆成了:
- 理解
- 规划
- 执行
- 验证
- 复查
这比“帮我把这个功能做了”强很多。
工作流一:新功能开发
这是最常见、也最推荐长期使用的一套流程。
适用场景
- 新增页面
- 增加一个接口
- 给现有模块加新能力
- 需要改多个文件,但边界还算清晰
推荐步骤
- 先让 Claude 理解相关模块
- 输出实现方案和涉及文件
- 确认后开始改代码
- 跑构建和测试
- 做一次 review
- 查看 diff 并提交
配套命令
/plan/diff/review/commit
推荐提问方式
先看一下这个功能会影响哪些文件,给出一个最小实现方案,先不要改代码。
我确认后你再开始改,改完运行 build 和相关测试,最后再 review 一遍。对应流程图
Claude Code你Claude Code你#mermaid-6k42e8i{font-family:system-ui,sans-serif;font-size:14px;fill:#0F2829;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-6k42e8i .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-6k42e8i .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-6k42e8i .error-icon{fill:#FFFBF2;}#mermaid-6k42e8i .error-text{fill:#00040d;stroke:#00040d;}#mermaid-6k42e8i .edge-thickness-normal{stroke-width:1px;}#mermaid-6k42e8i .edge-thickness-thick{stroke-width:3.5px;}#mermaid-6k42e8i .edge-pattern-solid{stroke-dasharray:0;}#mermaid-6k42e8i .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-6k42e8i .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-6k42e8i .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-6k42e8i .marker{fill:#F97316;stroke:#F97316;}#mermaid-6k42e8i .marker.cross{stroke:#F97316;}#mermaid-6k42e8i svg{font-family:system-ui,sans-serif;font-size:14px;}#mermaid-6k42e8i p{margin:0;}#mermaid-6k42e8i .actor{stroke:#F97316;fill:#FFF7E8;}#mermaid-6k42e8i text.actor>tspan{fill:#0F2829;stroke:none;}#mermaid-6k42e8i .actor-line{stroke:#F97316;}#mermaid-6k42e8i .innerArc{stroke-width:1.5;stroke-dasharray:none;}#mermaid-6k42e8i .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#0F2829;}#mermaid-6k42e8i .messageLine1{stroke-width:1.5;stroke-dasharray:2,2;stroke:#0F2829;}#mermaid-6k42e8i #arrowhead path{fill:#0F2829;stroke:#0F2829;}#mermaid-6k42e8i .sequenceNumber{fill:#068ce9;}#mermaid-6k42e8i #sequencenumber{fill:#0F2829;}#mermaid-6k42e8i #crosshead path{fill:#0F2829;stroke:#0F2829;}#mermaid-6k42e8i .messageText{fill:#0F2829;stroke:none;}#mermaid-6k42e8i .labelBox{stroke:#F97316;fill:#FFF7E8;}#mermaid-6k42e8i .labelText,#mermaid-6k42e8i .labelText>tspan{fill:#0F2829;stroke:none;}#mermaid-6k42e8i .loopText,#mermaid-6k42e8i .loopText>tspan{fill:#0F2829;stroke:none;}#mermaid-6k42e8i .loopLine{stroke-width:2px;stroke-dasharray:2,2;stroke:#F97316;fill:#F97316;}#mermaid-6k42e8i .note{stroke:hsl(52.6829268293, 60%, 73.9215686275%);fill:#fff5ad;}#mermaid-6k42e8i .noteText,#mermaid-6k42e8i .noteText>tspan{fill:#333;stroke:none;}#mermaid-6k42e8i .activation0{fill:#FFF1DB;stroke:hsl(36.6666666667, 100%, 82.9411764706%);}#mermaid-6k42e8i .activation1{fill:#FFF1DB;stroke:hsl(36.6666666667, 100%, 82.9411764706%);}#mermaid-6k42e8i .activation2{fill:#FFF1DB;stroke:hsl(36.6666666667, 100%, 82.9411764706%);}#mermaid-6k42e8i .actorPopupMenu{position:absolute;}#mermaid-6k42e8i .actorPopupMenuPanel{position:absolute;fill:#FFF7E8;box-shadow:0px 8px 16px 0px rgba(0,0,0,0.2);filter:drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4));}#mermaid-6k42e8i .actor-man line{stroke:#F97316;fill:#FFF7E8;}#mermaid-6k42e8i .actor-man circle,#mermaid-6k42e8i line{stroke:#F97316;fill:#FFF7E8;stroke-width:2px;}#mermaid-6k42e8i :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}先分析需求与文件范围输出方案、改动点、风险可以开始改修改代码运行 build / test/review 复查/diff 查看改动并确认
工作流二:Bug 修复
很多人修 bug 时容易直接让 Claude 开改。
但更稳的方式其实是“先定位,再修复,再复现验证”。
适用场景
- 页面报错
- 接口异常
- 状态错乱
- 某个场景偶现 bug
推荐步骤
- 让 Claude 先复述问题和排查方向
- 搜索相关调用链和报错位置
- 给出 root cause 推断
- 先说修法,再动代码
- 用最接近真实问题的方式验证
推荐提问方式
先不要改代码,先帮我定位这个 bug 可能在哪几层。
把最可能的根因、相关文件和修复思路列出来。确认后再改。
改完后请尽量复现并验证这个问题是否真的解决。这一套为什么比“直接修”更好
因为 bug 修复最怕两件事:
- 修错地方
- 修完没验证到真正问题
工作流三:重构与代码整理
这类任务最容易失控,因为目标往往不如“做功能”那么具体。
适用场景
- 文件太大想拆分
- 重复逻辑太多
- 命名和结构混乱
- 组件、服务、工具函数边界不清
推荐步骤
- 先让 Claude 评估当前结构问题
- 明确“这次只做哪一类重构”
- 先列拆分方案
- 分批改,不要一轮重构整个系统
- 每批都验证
推荐提问方式
先评估这个模块当前最主要的结构问题,只给我 2 到 3 个最值得做的重构点。
这次只做最小一轮,不要顺手改太多无关内容。
改完后说明具体拆了哪些职责,并运行验证。重构任务里最重要的一条
一定要限制范围。
否则 Claude 很容易“顺手优化”出一大坨额外改动。
工作流四:陌生项目接手
这类场景特别适合 Claude Code,因为它非常擅长先帮你建立认知地图。
适用场景
- 第一次接手某个仓库
- 别人的项目临时要你修点东西
- 公司老项目你不熟
- 想快速知道某个功能在哪实现
推荐步骤
- 先让 Claude 建项目地图
- 再锁定和当前目标最相关的目录与文件
- 再进入方案和修改
推荐提问方式
先帮我快速理解这个项目:
1. 技术栈是什么
2. 主要目录分别负责什么
3. 这个需求最可能涉及哪些文件
先不要改代码。一个很好用的进阶动作
让 Claude 顺手帮你沉淀 CLAUDE.md。
这样你第二次再回来,这个项目就没那么陌生了。
什么时候该切到 Plan Mode
特别适合下面这些场景:
- 改动跨多个模块
- 涉及数据库、权限、接口联动
- 你自己也没想清楚具体实现
- 你想先让 Claude 给出完整步骤
- 你担心它没想清楚就直接改代码
一个简单判断标准
如果你脑子里都已经觉得“这个任务有点大”,那就先 /plan。
Plan Mode 最大的价值不是更正式,而是帮你把“想法”变成“执行顺序”。
进阶用户常用的命令组合
组合一:先规划再实现
/plan适合大任务开局。
组合二:做完先看改动
/diff适合:
- 看 Claude 实际改了什么
- 避免只听它口头总结
组合三:改完再复查
/review适合:
- 提交前再看一遍 bug、风险和遗漏测试
组合四:长会话上下文治理
/context
/compact适合:
- 对话已经很长
- 你感觉 Claude 开始“忘事”
- 想继续当前任务,但不想完全开新会话
组合五:最终提交闭环
/diff
/review
/commit这基本就是一次完整的收尾链路。
进阶用户的 6 个习惯
1. 大任务先规划
不要让 Claude 直接冲进去改。
2. 明确要求验证
改完一定要让它跑 build、test 或关键命令。
3. 经常写 CLAUDE.md
把长期约束沉淀下来,别每次口述。
4. 会主动限制改动范围
比如明确说:
- 先不要重构
- 只修这个 bug
- 不要顺手改无关文件
- 先最小实现
5. 经常看 /diff
不要只看 Claude 的总结,要看真实改动。
6. 把一次长任务拆成多轮
一轮只解决一个清晰目标,比一口气做完整个需求更稳。
几个非常常见的进阶坑
1. 会话太长还硬聊
表现:
- Claude 开始答非所问
- 忘掉之前确认过的约束
- 修改越来越飘
解决:
- 用
/context看占用 - 用
/compact - 必要时新开会话,并重新给目标
2. 没有限定“先别改代码”
表现:
- 你本来想先讨论方案
- Claude 直接开始改了
解决:
明确写:
先不要改代码,只分析和出方案。3. 验证要求不具体
表现:
- Claude 说“已经完成”
- 但其实没跑关键验证
解决:
把验证动作说具体:
- 运行
npm run build - 运行相关测试
- 启动本地页面验证
- 提供失败输出
4. 把 Claude 当成唯一判断者
Claude 可以帮你推进任务,但最终是否提交、是否上线、是否接受方案,还是你来决定。
进阶工作流的重点不是“完全放手”,而是“让 Claude 帮你更快形成可靠闭环”。
一套我最推荐的通用工作流
如果你不想记太多,先固定用这一套就够了:
#mermaid-3sy2ln4{font-family:system-ui,sans-serif;font-size:14px;fill:#0F2829;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-3sy2ln4 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-3sy2ln4 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-3sy2ln4 .error-icon{fill:#FFFBF2;}#mermaid-3sy2ln4 .error-text{fill:#00040d;stroke:#00040d;}#mermaid-3sy2ln4 .edge-thickness-normal{stroke-width:1px;}#mermaid-3sy2ln4 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-3sy2ln4 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-3sy2ln4 .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-3sy2ln4 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-3sy2ln4 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-3sy2ln4 .marker{fill:#F97316;stroke:#F97316;}#mermaid-3sy2ln4 .marker.cross{stroke:#F97316;}#mermaid-3sy2ln4 svg{font-family:system-ui,sans-serif;font-size:14px;}#mermaid-3sy2ln4 p{margin:0;}#mermaid-3sy2ln4 .label{font-family:system-ui,sans-serif;color:#0F2829;}#mermaid-3sy2ln4 .cluster-label text{fill:#00040d;}#mermaid-3sy2ln4 .cluster-label span{color:#00040d;}#mermaid-3sy2ln4 .cluster-label span p{background-color:transparent;}#mermaid-3sy2ln4 .label text,#mermaid-3sy2ln4 span{fill:#0F2829;color:#0F2829;}#mermaid-3sy2ln4 .node rect,#mermaid-3sy2ln4 .node circle,#mermaid-3sy2ln4 .node ellipse,#mermaid-3sy2ln4 .node polygon,#mermaid-3sy2ln4 .node path{fill:#FFF7E8;stroke:#F97316;stroke-width:1px;}#mermaid-3sy2ln4 .rough-node .label text,#mermaid-3sy2ln4 .node .label text,#mermaid-3sy2ln4 .image-shape .label,#mermaid-3sy2ln4 .icon-shape .label{text-anchor:middle;}#mermaid-3sy2ln4 .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-3sy2ln4 .rough-node .label,#mermaid-3sy2ln4 .node .label,#mermaid-3sy2ln4 .image-shape .label,#mermaid-3sy2ln4 .icon-shape .label{text-align:center;}#mermaid-3sy2ln4 .node.clickable{cursor:pointer;}#mermaid-3sy2ln4 .root .anchor path{fill:#F97316!important;stroke-width:0;stroke:#F97316;}#mermaid-3sy2ln4 .arrowheadPath{fill:#0b0b0b;}#mermaid-3sy2ln4 .edgePath .path{stroke:#F97316;stroke-width:2.0px;}#mermaid-3sy2ln4 .flowchart-link{stroke:#F97316;fill:none;}#mermaid-3sy2ln4 .edgeLabel{background-color:transparent;text-align:center;}#mermaid-3sy2ln4 .edgeLabel p{background-color:transparent;}#mermaid-3sy2ln4 .edgeLabel rect{opacity:0.5;background-color:transparent;fill:transparent;}#mermaid-3sy2ln4 .labelBkg { fill: none; }#mermaid-3sy2ln4 .cluster rect{fill:#FFFBF2;stroke:hsl(41.5384615385, 60%, 87.4509803922%);stroke-width:1px;}#mermaid-3sy2ln4 .cluster text{fill:#00040d;}#mermaid-3sy2ln4 .cluster span{color:#00040d;}#mermaid-3sy2ln4 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:system-ui,sans-serif;font-size:12px;background:#FFFBF2;border:1px solid hsl(41.5384615385, 60%, 87.4509803922%);border-radius:2px;pointer-events:none;z-index:100;}#mermaid-3sy2ln4 .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#0F2829;}#mermaid-3sy2ln4 rect.text{fill:none;stroke-width:0;}#mermaid-3sy2ln4 .icon-shape,#mermaid-3sy2ln4 .image-shape{background-color:transparent;text-align:center;}#mermaid-3sy2ln4 .icon-shape p,#mermaid-3sy2ln4 .image-shape p{background-color:transparent;padding:2px;}#mermaid-3sy2ln4 .icon-shape .label rect,#mermaid-3sy2ln4 .image-shape .label rect{opacity:0.5;background-color:transparent;fill:transparent;}#mermaid-3sy2ln4 .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-3sy2ln4 .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-3sy2ln4 :root
理解项目与需求
输出方案
确认范围
开始实现
验证 build / test
/review 复查
/diff 确认
/commit 提交
你每次都按这个节奏来,Claude Code 的稳定性会明显提高。
小结
进阶工作流的核心不是更复杂,而是更有节奏:
- 先理解
- 再规划
- 再执行
- 然后验证
- 最后复查和提交
当你形成这套习惯后,Claude Code 的价值会比“想到什么就问什么”高很多。
它会从“一个很强的 AI 工具”,变成“一个真正融入开发流程的工程搭档”。